Imagine is a labor of love for my co-founder and me. I’ve been a software engineer for over a decade and we’ve overseen the build out of several (80+) software products over the years.<p>Each time we were acutely reminded of how much redundancy there exists while writing code, especially for commonly used components and features in software applications. Also, while we believe the current version of the no-code movement is awesome, we found it hard to scale these solutions for applications that required any reasonable level of custom logic.<p>So we built Imagine - a configurable, cross-framework platform for developers to easily generate high-quality code for common application components, which they can seamlessly integrate into their projects, without any lock-in - and allowing them to focus on writing custom business logic. Our goal has been to make the generated code clean, readable and following known software best practices (we love the 12—factor app philosophy!) - basically indistinguishable from what a skilled engineer would write.<p>To build the Imagine code generator, we initially considered building with regexes, but discarded that approach as it would have been highly error-prone. Given the high configurability we wanted to offer, we needed to be obsessed with correctness. To achieve this, we decided to use Haskell to build the code generator, as we were able to use Haskell’s built-in type system to represent rules to ensure correctness of the generated code. It also allowed us to enforce various constraints across an app’s specification using static checks.<p>In terms of features, our beta release allows you to define your starter settings, data models and relations via a UI and we instantly generate code for a dockerized project starter, ORMs, REST & GraphQL CRUD APIs and tests in both Django & Node.js.<p>We also have the following features on our roadmap:
- Backend frameworks:
- Node/Typescript
- Backend features:
- NoSQL databases (MongoDB, DynamoDB)
- Support for migrations
- Kubernetes deployment scripts
- Logging and monitoring
- Authentication (via multiple providers)
- Payments integration (via multiple providers)
- Frontend frameworks:
- React (incl Redux, Hooks)
- React native
- Frontend features:
- API calling
- Views & components
- Storybooks<p>We’d like to thank you in advance for trying our product out - we’re still early in development, and would love your feedback and suggestions as we push to make Imagine better everyday!