diff --git a/content/services/django.md b/content/services/django.md new file mode 100644 index 000000000..ba13705c5 --- /dev/null +++ b/content/services/django.md @@ -0,0 +1,418 @@ +--- +title: Ship Faster & Safer with a Django Fixup +sub: > + Security hardening, + performance tuning, + and developer velocity— + diagnosed, fixed, and handed back stronger. +action: + text: Let's chat » + url: '#chat' +cta: false +included: + - title: No Obligation + text: We're always happy to talk, and we're focused on helping, not selling. + icon: icons/hand + - title: Tailored to Your Needs + text: What's the most difficult problem you're facing? + icon: icons/tools + - title: Best Practice is a Conversation + text: We don't have all the answers, but we know what questions to ask. + icon: icons/messaging +summary: | + Django is battle-tested and secure by default— + but production realities add up. + Slow queries, flaky tests, brittle deployments, + upgrade debt, and sluggish CI pipelines + can hold your team back. + **It doesn't have to be like this!** + + We'll diagnose what's slowing you down, + implement high-impact fixes, + and train your team to keep shipping with confidence— + so you can scale efficiently + and spend less time firefighting. +media: + - span: full + youtube: Um3tnONShPc + id: workshop-video +--- + +{% import 'layout.macros.njk' as layout %} +{% import 'quotes.macros.njk' as quotes %} +{% import 'birds.macros.njk' as birds %} +{% import 'embed.macros.njk' as embed %} +{% import 'utility.macros.njk' as utility %} +{% import 'contact.macros.njk' as contact %} + +{% call layout.block( + name='full', + attrs={'class': 'has-angles'} +) %} + +## A Django fixup helps you... + +{% call layout.grid('narrow-columns') %} + +{% call layout.block('column') %} + +### Secure your App + +Close the common gaps— +proven security settings, CSP headers, session config, auth flows— +and ship confidently. + +{% endcall %} + +{% call layout.block('column') %} + +### Boost Performance + +Cut response times with ORM tuning, +N+1 fixes, caching strategies, +server optimizations, +and proper database indexing. + +{% endcall %} + +{% call layout.block('column') %} + +### Untie Developers + +Deliver more features, faster, with +stable fixtures/factories, +sensible settings splits, +and snappy local/CI environments. + +{% endcall %} + +{% call layout.block('column') %} + +### Stay up to Date + +Run on the latest Django version, +remove deprecated patterns, +and automate upgrades +so you're never stuck with unmaintained dependencies. + +{% endcall %} + +{% call layout.block('column') %} + +### Test with Confidence + +Raise coverage where it matters, +stabilize flaky tests, +leverage end-to-end testing, +and add smoke checks that catch regressions early. + +{% endcall %} + +{% call layout.block('column') %} + +### Stabilize your API + +Produce self-documenting, type-safe APIs +that eliminate entire classes of bugs +and are loved by front-end developers. + +{% endcall %} + +{% endcall %} {# layout.grid('narrow-columns') #} + +{% endcall %} {# layout.block('full') #} + +## [Video Section Title?] + +[Do we have or could we make a short video?] + +{{ embed.figure(media) }} + +## What is a Django fixup? + +It's a health check and modernization sprint +for your Django application. +We audit your configuration, dependencies, +database queries, test suite, and CI pipeline— +then deliver a prioritized plan +with effort estimates +and implement high-impact fixes. + +You'll get measurable improvements +in response times, deployment cadence, and reliability— +along with documentation and pairing sessions +so your team can sustain the gains. +We've helped teams cut API latency, +speed up CI and local development, +and land dependency upgrades +that had been stalled for months. + +## What's the cost? + +**You decide!** +Start small with a conversation, +jump in to a full assessment and training. +We can customize the project +to fit your budget and needs, +but the options below +are a great place to start. + +{% call layout.block( + name='full', + attrs={'class': 'has-angles'} +) %} + +{% call layout.grid('narrow-columns') %} + +{% call layout.block('column') %} + +### Expert Advice + +Sometimes all you need +is a chat with an expert. +Ed Rivas or Victor Allen +will spend an hour with you, +answering your Django questions, +and recording the conversation for you. + +- Identify obvious sticking points +- Outline next steps to bring to your team or boss + +**$250** + +{{ utility.main_action( + content='Schedule now »', + url='https://calendly.com/oddbirdllc/django-fixup' +) }} + +{% endcall %} + +{% call layout.block('column') %} + +### Audit & Training + +Upgrade debt piling up? +Unclear how to scale? +We'll audit your Django application— +config, dependencies, queries, tests, CI— +and deliver a prioritized findings report +with quick wins you can implement right away +or use as a roadmap to train your team. + +- Findings doc with effort/impact priorities +- 1–2 pairing sessions to apply top wins +- Custom training curriculum for your team + + +**Starts at $2,000** + +{{ utility.main_action( + content='Request an audit »', + url='#chat' +) }} + +{% endcall %} + +{% call layout.block('column') %} + +### Django Fixup + +Your Django app is holding the business back— +slow responses, flaky deploys, +and buggy feature roll-outs. +OddBird will implement the fixes that matter most: +upgrade to a maintained Django version, +harden settings, +optimize queries, +stabilize tests, +and speed up CI. + +- Measurable before/after metrics (response time, error rate, deploy time) +- Implemented changes via pull requests +- Playbook for ongoing maintenance + +**Starts at $5,000** + +{{ utility.main_action( + content="Let's chat »", + url='#chat' +) }} + +{% endcall %} + +{% endcall %} + +{% endcall %} + +## About Ed and the OddBirds + +{% set bird = collections.birds | authorPage('ed') %} +{{ birds.card(bird=bird, extended=extended) }} + +[Ed Rivas](/authors/ed) leads a tight-knit team +of senior back-end developers +including [Victor Allen](/authors/victor)— +with deep collaboration across +OddBird's front-end, design, and standards experts. + +**A developer, teacher, and open source contributor** — +Ed has been a Python & Django developer for over a decade. +He's spoken multiple times at [DjangoCon US], +the largest international conference for Django developers, +and volunteered as a coach for [DjangoGirls], +teaching web development to underrepresented groups. +Ed is a native Spanish speaker +with experience translating content and software UIs. + +**Need more than back-end development?** +We're a cross-discipline team of experts +working at the cutting edge of the web platform. +Our team includes: +- [Miriam Suzanne](/authors/miriam), Invited Expert on the W3C CSS Working Group + and core contributor to Sass— + leading specs for container queries, cascade layers, and CSS scope +- Developers who've built polyfills adopted by millions +- Presenters who've trained teams at Google, Mozilla, and leading startups +- We've designed and developed for clients in healthcare, education, finance, + manufacturing, and more + +That breadth means we've *seen it all*— +and we know how to connect Django back-end work +to accessible front-ends, design systems, +and the long-term maintainability your business needs. + +[DjangoCon US]: https://djangocon.us/ +[DjangoGirls]: https://djangogirls.org/en/ + +{{ quotes.find( + collections.all, + slugs=['popular-tutorial', 'handoff'] +) }} + +## Common Questions + +**Are you just going to rewrite everything?** +No—we start with surgical improvements +and avoid rewrites unless the value is overwhelming. +Most gains come from targeted fixes, +not ground-up rebuilds. + +**Can we keep shipping features?** +Yes—we work in separate branches +to isolate changes and avoid blocking your roadmap. +You stay in control of priorities. + +**What if we already have strong Django developers?** +Great—pair with us for accelerated upgrades, +fresh patterns from other industries, +and a second set of expert eyes. +We become your force multiplier. + +**What access do you need?** +To start, just access to a technical point of contact. +As our involvement deepens, +we'll need access to the codebase, +project management software, +and other parts of your development workflow. + +**How soon can we start?** +Typically within 2-4 weeks for audits/fixups; +Expert Advice sessions can start sooner. + +**Can you also develop new features for us?** +Absolutely! Our team has expertise in [strategy](/services/planning), +[design](/services/design-systems), and [full-stack development](/services/development). + +{% call layout.block( + name='full', + attrs={ + 'class': 'fancy-background', + 'data-ccs-colors': 'invert' + } +) %} + +## Want a Django fixup? Let's chat. + +{% call layout.block( + attrs={'style': '--column: wide'} +) %} + +{% call layout.grid( + 'narrow-columns' +) %} + +{% call layout.block('column') %} + +{{ embed.icon_block( + data=included, + grid='fit' +) }} + +{% endcall %} + +{% call layout.block('column') %} + +{{ contact.form( + submit='Send Message', + name='fixup', + extraActions='or [schedule a call to learn more »](https://calendly.com/oddbirdllc/django-fixup)' +) }} + +{% endcall %} + +{% endcall %} {# layout.grid #} + +{% endcall %} {# layout.block #} + +{% endcall %} {# layout.block fancy-background #} + +{{ quotes.find( + collections.all, + slugs=[ + 'easy', + 'complex-concepts', + 'curious', + 'exemplary' + ] +) }} + +## Isn't Django a legacy framework? Why use it today? + +Django remains one of the most +secure, scalable, and productive web frameworks— +battle-tested by Instagram, Spotify, Pinterest, +and thousands of enterprise teams. +Its "batteries included" philosophy +means you spend less time wiring libraries together +and more time solving business problems. + +But the ecosystem keeps evolving. +Modern Django includes async support, +type hints, improved admin customization, +and a vast array of third-party packages— +features that can dramatically improve performance +and developer experience +if you know how to use them. +Many teams are still running decades-old patterns from Django 1.x, +leaving performance and security wins on the table. + +With the right architecture and up-to-date patterns, +Django scales to millions of requests +while keeping your codebase maintainable. +We'll help you get there. + +## Can't I just vibe code with AI? + +Writing code is only one small part of web development. +Along the way we are making constant decisions +about the user interface, +accessibility, +and long-term maintainability. +New tools can automate +parts of the code-writing process, +but without the guidance and supervision +of an experienced developer +you risk ending up with an unmaintainable and buggy codebase +that will need to be rewritten from scratch +sooner than you'd like. +There's no replacing ✨ Actual Intelligence.