SlideShare a Scribd company logo
RAD on SaaS platforms: Django,
Django Rest Framework and…
… a catch
Marco Montanari @ingmmo,
Modal Nodes @mnorchestra
Who am I?
Marco Montanari
@ingmmo, marco.montanari@gmail.com, http://www.ingmmo.com/
• Python architect, Django fanatic, Tastypie appreciator,
Django Rest Framework conoisseur, pandas cuddler, GIS lifestyler
Who are we?
Modal Nodes – The Software Orchestra
• Lorenzo Gigli, Android + web front end dev
• Leonardo Montecchiari, iOS + IoT dev
• Jacopo Carletti, Full stack Web dev (the wrong stack starting with P...)
• Riccardo Biavati, Designer (the one that really does the heavy lifting)
• Me (Marco), Full stack dev (the right stack )
The Issue
• As coders
• We love to code NEW STUFF
• We hate routine
The Issue
• As coders
• We love to code NEW STUFF
• We hate routine
• (We would love to write our code once and have the designers changing the
UI settings N+1 times)
Backend Frontend
A wise man's question
contains half the answer.
Solomon Ibn Gabirol
What does the Issue express?
• We don’t want to explain the APIs we write.
• We would love them to be self documenting
Saas rad with django, django rest framework
What does the Issue express?
• We don’t want to explain the APIs we write
• We would love them to be self documenting
• We would love to have simple standard rules
• Standard rules mean standard APIs
• Standard APIs mean standard libraries
• Standard libraries mean more time
• More time means possibility to create the tool for the designer
• The time to create the tool means more time!!!
• Win!!
• It’s a matter of describing the world
Backend API Frontend
How do we describe our API driven world?
• Django Class based views?
• Swagger?
• Django Rest Framework?
• WSDL 2.0?
• RAML?
• WhateverML?
• WhateverON?
• UML?
• XDI?
Cool! Uhm…
How do we describe our API driven world?
• Django Class based views?
• Swagger?
• Django Rest Framework?
• WSDL 2.0?
• RAML?
• WhateverML?
• WhateverON?
• UML?
• XDI?
Let’s go back to the basics
• Django
• Class based views for APIs?
• Very loose
• Cool, but it means defining an adapter from Django to the outside world and that brings
us back to the standards slide.
• Django Rest Framework
• Quite strict
• Descriptive on the actions and not as much as it could be on the data structures
• <3 OPTIONS method… what’s not to love there??
Backend API Frontend
Designer
Frontend
Ok cool, but…
We added 2 layers between our app and our front end…
• Not cool
• Not maintainable…
UNLESS…
…unless we can find a nice tool or library
• Angular4 could be a nice tool to provide a structured and meta-level
approach to the code we are describing
• Does not work well with Angular-driven editors, as of now… (we have a library
for non-drag-drop editors)
…unless we can find a nice tool or library
• Angular4 could be a nice tool to provide a structured and meta-level
approach to the code we are describing
• Does not work well with Angular-driven editors
• GrapesJS
GrapesJS
Pros
• Extensible
• Flexible
• Beautiful
• Easy to use for the designer
• Fun to work with for the dev
Cons
GrapesJS
Pros
• Extensible
• Flexible
• Beautiful
• Easy to use for the designer
• Fun to work with for the dev
Cons
• Pure JS…
• The drag-drop elements are pure
html+css (no js)
GrapesJS
Pros
• Extensible
• Flexible
• Beautiful
• Easy to use for the designer
• Fun to work with for the dev
Cons
• Pure JS…
• The drag-drop elements are pure
html+css (no js)
Some magic required
DRF Metadata… what if…
• What if we could generate GrapesJS components from our
standardized metadata?
• A list component
• A list item component
• A detail view component
• A create/edit component
Backend API Frontend
Designer
Frontend
Contributions!
• Django Rest Framework Metadata Transformer
• GrapesJS data-attribute animator
• (which is not bound to GrapesJS, just aptly structured to be useful with…)
• http://cdn.modal-nodes.com/libs/js/mn-grapesjs-animator.js
• Angular2+ mn-bms (Backend Management Service)
• Not discussed, but it relies on the metadata to provide a set of RESTful APIs
directly to the UI
FrontendBackend API Frontend
Designer
DEMO
If we have time. Else, you can find a usable version on our post on Medium
Thanks!
• Questions?
Follow us on Medium: https://medium.com/modal-nodes
Follow us on twitter: https://twitter.com/mnorchestra
Follow us on github: https://github.com/modal-nodes
Follow me on Medium: https://medium.com/sirmmo
Follow me on twitter: https://twitter.com/ingmmo
Follow me on github: https://github.com/sirmmo

More Related Content

Similar to Saas rad with django, django rest framework (20)

PDF
Swagger for-your-api
Tony Tam
 
PDF
Building an API with Django and Django REST Framework
Christopher Foresman
 
PDF
Why your APIs should fly first class
LibbySchulze
 
PDF
API Description Languages: Which Is The Right One For Me?
ProgrammableWeb
 
PDF
Node.js Frameworks & Design Patterns Webinar
Shubhra Kar
 
PPTX
API workshop: Introduction to APIs (TC Camp)
Tom Johnson
 
PPTX
Professionalizing the Front-end
Jordi Anguela
 
PPTX
OpenSource Node.js API Framework and Server for Enterprise
Shubhra Kar
 
PPTX
Swagger - Making REST APIs friendlier
Miroslav Resetar
 
PPTX
Contract driven development
Stephen Erdman
 
PPTX
AI introduction to modern web technologies.pptx
AmrutaGourgonda
 
PDF
Picking the Right Node.js Framework for Your Use Case
Jimmy Guerrero
 
PDF
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
Mark Leusink
 
PPTX
Swagger - make your API accessible
Victor Trakhtenberg
 
PPTX
Introducing swagger
Amr Ali
 
PDF
API Description Languages
Akana
 
PDF
API Description Languages
Akana
 
PDF
"Design First" APIs with Swagger
scolestock
 
PDF
Modern webtechnologies
Besjan Xhika
 
PDF
Sofea and SOUI - Web future without web frameworks
André Neubauer
 
Swagger for-your-api
Tony Tam
 
Building an API with Django and Django REST Framework
Christopher Foresman
 
Why your APIs should fly first class
LibbySchulze
 
API Description Languages: Which Is The Right One For Me?
ProgrammableWeb
 
Node.js Frameworks & Design Patterns Webinar
Shubhra Kar
 
API workshop: Introduction to APIs (TC Camp)
Tom Johnson
 
Professionalizing the Front-end
Jordi Anguela
 
OpenSource Node.js API Framework and Server for Enterprise
Shubhra Kar
 
Swagger - Making REST APIs friendlier
Miroslav Resetar
 
Contract driven development
Stephen Erdman
 
AI introduction to modern web technologies.pptx
AmrutaGourgonda
 
Picking the Right Node.js Framework for Your Use Case
Jimmy Guerrero
 
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
Mark Leusink
 
Swagger - make your API accessible
Victor Trakhtenberg
 
Introducing swagger
Amr Ali
 
API Description Languages
Akana
 
API Description Languages
Akana
 
"Design First" APIs with Swagger
scolestock
 
Modern webtechnologies
Besjan Xhika
 
Sofea and SOUI - Web future without web frameworks
André Neubauer
 

More from Marco Montanari (20)

PPTX
OpenStreetMap_LinuxDay2023.pptx
Marco Montanari
 
PPTX
Ohm wikimania 2021
Marco Montanari
 
PPTX
Ohm itwikicon tech - english
Marco Montanari
 
PDF
ITWikiCon 2020 - OpenHistoryMap
Marco Montanari
 
PDF
ITWikiCon - Edutainment e Wikipedia
Marco Montanari
 
PPTX
Storia dell'informatica
Marco Montanari
 
PDF
Bononia 1115
Marco Montanari
 
PPTX
ChContext
Marco Montanari
 
PDF
MN-MAP Poster for Foss4G2018
Marco Montanari
 
PDF
GEOCONTEXT AND CHCONTEXT GEOGRAPHIC INFORMATION IN CULTURAL HERITAGE
Marco Montanari
 
PPTX
OHM at FOSS4G17
Marco Montanari
 
PDF
Mn map poster
Marco Montanari
 
PDF
poster mn-auth
Marco Montanari
 
PDF
poster holodocker
Marco Montanari
 
PPTX
Big data, big tourism
Marco Montanari
 
PPTX
Intro datajournalism - 14-15/06/2017
Marco Montanari
 
PPTX
OHM at Kainua17
Marco Montanari
 
PDF
OHM Workshop
Marco Montanari
 
PDF
Open Data e Trasparenza come punto di contatto fra cittadinanza e politica
Marco Montanari
 
PDF
Intervento 20160705
Marco Montanari
 
OpenStreetMap_LinuxDay2023.pptx
Marco Montanari
 
Ohm wikimania 2021
Marco Montanari
 
Ohm itwikicon tech - english
Marco Montanari
 
ITWikiCon 2020 - OpenHistoryMap
Marco Montanari
 
ITWikiCon - Edutainment e Wikipedia
Marco Montanari
 
Storia dell'informatica
Marco Montanari
 
Bononia 1115
Marco Montanari
 
ChContext
Marco Montanari
 
MN-MAP Poster for Foss4G2018
Marco Montanari
 
GEOCONTEXT AND CHCONTEXT GEOGRAPHIC INFORMATION IN CULTURAL HERITAGE
Marco Montanari
 
OHM at FOSS4G17
Marco Montanari
 
Mn map poster
Marco Montanari
 
poster mn-auth
Marco Montanari
 
poster holodocker
Marco Montanari
 
Big data, big tourism
Marco Montanari
 
Intro datajournalism - 14-15/06/2017
Marco Montanari
 
OHM at Kainua17
Marco Montanari
 
OHM Workshop
Marco Montanari
 
Open Data e Trasparenza come punto di contatto fra cittadinanza e politica
Marco Montanari
 
Intervento 20160705
Marco Montanari
 
Ad

Recently uploaded (20)

PDF
LLM Search Readiness Audit - Dentsu x SEO Square - June 2025.pdf
Nick Samuel
 
PDF
The Growing Value and Application of FME & GenAI
Safe Software
 
PDF
Enhancing Environmental Monitoring with Real-Time Data Integration: Leveragin...
Safe Software
 
PDF
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
PPTX
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Poster...
Michele Kryston
 
PPTX
Simplifica la seguridad en la nube y la detección de amenazas con FortiCNAPP
Cristian Garcia G.
 
PDF
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
PDF
Java 25 and Beyond - A Roadmap of Innovations
Ana-Maria Mihalceanu
 
PDF
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
PDF
From Chatbot to Destroyer of Endpoints - Can ChatGPT Automate EDR Bypasses (1...
Priyanka Aash
 
PPSX
Usergroup - OutSystems Architecture.ppsx
Kurt Vandevelde
 
PPTX
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
DOCX
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
PDF
Hyderabad MuleSoft In-Person Meetup (June 21, 2025) Slides
Ravi Tamada
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PPTX
𝙳𝚘𝚠𝚗𝚕𝚘𝚊𝚍—Wondershare Filmora Crack 14.0.7 + Key Download 2025
sebastian aliya
 
PDF
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
PDF
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
ScyllaDB
 
PPTX
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
PDF
Kubernetes - Architecture & Components.pdf
geethak285
 
LLM Search Readiness Audit - Dentsu x SEO Square - June 2025.pdf
Nick Samuel
 
The Growing Value and Application of FME & GenAI
Safe Software
 
Enhancing Environmental Monitoring with Real-Time Data Integration: Leveragin...
Safe Software
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Poster...
Michele Kryston
 
Simplifica la seguridad en la nube y la detección de amenazas con FortiCNAPP
Cristian Garcia G.
 
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
Java 25 and Beyond - A Roadmap of Innovations
Ana-Maria Mihalceanu
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
From Chatbot to Destroyer of Endpoints - Can ChatGPT Automate EDR Bypasses (1...
Priyanka Aash
 
Usergroup - OutSystems Architecture.ppsx
Kurt Vandevelde
 
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
Hyderabad MuleSoft In-Person Meetup (June 21, 2025) Slides
Ravi Tamada
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
𝙳𝚘𝚠𝚗𝚕𝚘𝚊𝚍—Wondershare Filmora Crack 14.0.7 + Key Download 2025
sebastian aliya
 
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
ScyllaDB
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
Kubernetes - Architecture & Components.pdf
geethak285
 
Ad

Saas rad with django, django rest framework

  • 1. RAD on SaaS platforms: Django, Django Rest Framework and… … a catch Marco Montanari @ingmmo, Modal Nodes @mnorchestra
  • 2. Who am I? Marco Montanari @ingmmo, [email protected], http://www.ingmmo.com/ • Python architect, Django fanatic, Tastypie appreciator, Django Rest Framework conoisseur, pandas cuddler, GIS lifestyler
  • 3. Who are we? Modal Nodes – The Software Orchestra • Lorenzo Gigli, Android + web front end dev • Leonardo Montecchiari, iOS + IoT dev • Jacopo Carletti, Full stack Web dev (the wrong stack starting with P...) • Riccardo Biavati, Designer (the one that really does the heavy lifting) • Me (Marco), Full stack dev (the right stack )
  • 4. The Issue • As coders • We love to code NEW STUFF • We hate routine
  • 5. The Issue • As coders • We love to code NEW STUFF • We hate routine • (We would love to write our code once and have the designers changing the UI settings N+1 times)
  • 7. A wise man's question contains half the answer. Solomon Ibn Gabirol
  • 8. What does the Issue express? • We don’t want to explain the APIs we write. • We would love them to be self documenting
  • 10. What does the Issue express? • We don’t want to explain the APIs we write • We would love them to be self documenting • We would love to have simple standard rules • Standard rules mean standard APIs • Standard APIs mean standard libraries • Standard libraries mean more time • More time means possibility to create the tool for the designer • The time to create the tool means more time!!! • Win!! • It’s a matter of describing the world
  • 12. How do we describe our API driven world? • Django Class based views? • Swagger? • Django Rest Framework? • WSDL 2.0? • RAML? • WhateverML? • WhateverON? • UML? • XDI?
  • 14. How do we describe our API driven world? • Django Class based views? • Swagger? • Django Rest Framework? • WSDL 2.0? • RAML? • WhateverML? • WhateverON? • UML? • XDI?
  • 15. Let’s go back to the basics • Django • Class based views for APIs? • Very loose • Cool, but it means defining an adapter from Django to the outside world and that brings us back to the standards slide. • Django Rest Framework • Quite strict • Descriptive on the actions and not as much as it could be on the data structures • <3 OPTIONS method… what’s not to love there??
  • 17. Ok cool, but… We added 2 layers between our app and our front end… • Not cool • Not maintainable… UNLESS…
  • 18. …unless we can find a nice tool or library • Angular4 could be a nice tool to provide a structured and meta-level approach to the code we are describing • Does not work well with Angular-driven editors, as of now… (we have a library for non-drag-drop editors)
  • 19. …unless we can find a nice tool or library • Angular4 could be a nice tool to provide a structured and meta-level approach to the code we are describing • Does not work well with Angular-driven editors • GrapesJS
  • 20. GrapesJS Pros • Extensible • Flexible • Beautiful • Easy to use for the designer • Fun to work with for the dev Cons
  • 21. GrapesJS Pros • Extensible • Flexible • Beautiful • Easy to use for the designer • Fun to work with for the dev Cons • Pure JS… • The drag-drop elements are pure html+css (no js)
  • 22. GrapesJS Pros • Extensible • Flexible • Beautiful • Easy to use for the designer • Fun to work with for the dev Cons • Pure JS… • The drag-drop elements are pure html+css (no js) Some magic required
  • 23. DRF Metadata… what if… • What if we could generate GrapesJS components from our standardized metadata? • A list component • A list item component • A detail view component • A create/edit component
  • 25. Contributions! • Django Rest Framework Metadata Transformer • GrapesJS data-attribute animator • (which is not bound to GrapesJS, just aptly structured to be useful with…) • http://cdn.modal-nodes.com/libs/js/mn-grapesjs-animator.js • Angular2+ mn-bms (Backend Management Service) • Not discussed, but it relies on the metadata to provide a set of RESTful APIs directly to the UI
  • 27. DEMO If we have time. Else, you can find a usable version on our post on Medium
  • 28. Thanks! • Questions? Follow us on Medium: https://medium.com/modal-nodes Follow us on twitter: https://twitter.com/mnorchestra Follow us on github: https://github.com/modal-nodes Follow me on Medium: https://medium.com/sirmmo Follow me on twitter: https://twitter.com/ingmmo Follow me on github: https://github.com/sirmmo