<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: CODENAME</title>
    <description>The latest articles on DEV Community by CODENAME (@codename).</description>
    <link>https://dev.to/codename</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F4537%2Fc544d5c2-f501-451e-a5c2-cb159ac1b024.png</url>
      <title>DEV Community: CODENAME</title>
      <link>https://dev.to/codename</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codename"/>
    <language>en</language>
    <item>
      <title>Building an App 📱 and its Stack in minutes with LOLstack 🥡</title>
      <dc:creator>Arnaud Leymet</dc:creator>
      <pubDate>Sat, 07 Aug 2021 22:10:51 +0000</pubDate>
      <link>https://dev.to/codename/building-an-app-and-its-stack-in-minutes-with-lolstack-gka</link>
      <guid>https://dev.to/codename/building-an-app-and-its-stack-in-minutes-with-lolstack-gka</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Hello there (ʘ‿ʘ)╯&lt;/strong&gt;&lt;br&gt;
This post is part of a short series you may prefer to read chronologically.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Preface
&lt;/h2&gt;

&lt;p&gt;Chosing what will compose a stack is both a matter of &lt;em&gt;experience&lt;/em&gt;, &lt;em&gt;opinion&lt;/em&gt; and &lt;em&gt;timing&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Experience&lt;/em&gt; helps identifying what will stick, but &lt;em&gt;opinion&lt;/em&gt; has a major role in the final chosing.&lt;/p&gt;

&lt;p&gt;As of &lt;em&gt;timing&lt;/em&gt;, what seems to be a good idea at the time, may be compromised by a lack of maintainers goodwill or vision a year later.&lt;/p&gt;

&lt;p&gt;So by no means is the &lt;a href="https://stack.lol" rel="noopener noreferrer"&gt;LOLstack&lt;/a&gt; The Perfect Stack™️. Now that's out, let's cover what it has to offer.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Enough with the stalling, Access the good stuff&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  What you'll get
&lt;/h2&gt;

&lt;p&gt;An App, an API, a Database and all of the in-between that make an App and its stack work.&lt;/p&gt;




&lt;h2&gt;
  
  
  The tech stack &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Tech used&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Mobile app&lt;/strong&gt; that targets iOS, Android &amp;amp; the web&lt;/td&gt;
&lt;td&gt;
&lt;a href="////reactnative.dev"&gt;React Native&lt;/a&gt; &lt;a href="////expo.io"&gt;Expo&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Design system&lt;/strong&gt; for a component-based, modular &amp;amp; consistent design&lt;/td&gt;
&lt;td&gt;
&lt;a href="////eva.design"&gt;Eva Design&lt;/a&gt; &lt;a href="////akveo.github.io/react-native-ui-kitten/"&gt;UI Kitten&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Typing&lt;/strong&gt; for a type-safe runtime &amp;amp; auto-generated interfaces&lt;/td&gt;
&lt;td&gt;&lt;a href="////www.typescriptlang.org"&gt;TypeScript&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Database&lt;/strong&gt; with both relational and unstructured data&lt;/td&gt;
&lt;td&gt;&lt;a href="////www.postgresql.org/docs/current/ddl-rowsecurity.html"&gt;PostgresQL&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;GraphQL API&lt;/strong&gt; autogenerated from the database schemas&lt;/td&gt;
&lt;td&gt;&lt;a href="////www.graphile.org/postgraphile/"&gt;PostGraphile&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;RESTful API&lt;/strong&gt; autogenerated from the database schemas&lt;/td&gt;
&lt;td&gt;&lt;a href="http://postgrest.org" rel="noopener noreferrer"&gt;PostgREST&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Custom RESTful API&lt;/strong&gt; for implementing server-side specific needs&lt;/td&gt;
&lt;td&gt;
&lt;a href="////expressjs.com"&gt;ExpressJS&lt;/a&gt; &lt;a href="////www.typescriptlang.org"&gt;TypeScript&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Authentication flow&lt;/strong&gt; for handling sign-up and sign-in&lt;/td&gt;
&lt;td&gt;&lt;a href="////jwt.io"&gt;JSON Web Token&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Role-based permissions&lt;/strong&gt; for a granular and low-level security&lt;/td&gt;
&lt;td&gt;&lt;a href="////www.postgresql.org/docs/current/ddl-rowsecurity.html"&gt;PostgresQL&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Containers&lt;/strong&gt; for services isolation and reproducibility&lt;/td&gt;
&lt;td&gt;&lt;a href="////www.docker.com"&gt;Docker&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Job queue&lt;/strong&gt; for handling asynchronous tasks&lt;/td&gt;
&lt;td&gt;&lt;a href="////github.com/graphile/worker"&gt;Graphile Worker&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Job scheduler&lt;/strong&gt; for running repetitive automated tasks&lt;/td&gt;
&lt;td&gt;&lt;a href="////github.com/mcuadros/ofelia"&gt;ofelia&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Web proxy&lt;/strong&gt; with SSL certificate handling, access logs&lt;/td&gt;
&lt;td&gt;&lt;a href="////traefik.io"&gt;traefik&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Admin interface&lt;/strong&gt; for accessing &amp;amp; manipulating the data directly&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://sosedoff.github.io/pgweb/" rel="noopener noreferrer"&gt;pgweb&lt;/a&gt; &lt;a href="////www.adminer.org"&gt;adminer&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Unit testing&lt;/strong&gt; for ensuring that code is functional&lt;/td&gt;
&lt;td&gt;
&lt;a href="////jestjs.io"&gt;Jest&lt;/a&gt; &lt;a href="////github.com/mixerp/plpgunit"&gt;plpgunit&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Status page&lt;/strong&gt; to communicate outage and downtime to customers&lt;/td&gt;
&lt;td&gt;&lt;a href="////cachethq.io"&gt;Cachet&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;Some of these choices are questionable? Please drop a comment, and let's 👊 discuss 'em softly :)&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Don't leave just yet! &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Feeling overwhelmed? Don't. That was the boring part.&lt;/p&gt;

&lt;p&gt;Now is the good part, as booting this stack is just a copy-paste away:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone git@github.com:codename-co/stack.git &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="nv"&gt;$_&lt;/span&gt;
docker-compose up
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;🤭 Installing &lt;a href="https://www.docker.com/products/docker-desktop" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; first would be a good idea by the way.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Open source
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://github.com/codename-co/stack" rel="noopener noreferrer"&gt;LOLstack boilerplate&lt;/a&gt; is open source.&lt;br&gt;
This is great news to you right now for your 🤪 crazy app idea.&lt;br&gt;
Happy crafting!&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>reactnative</category>
      <category>programming</category>
      <category>docker</category>
    </item>
    <item>
      <title>Building an App Was Hard. 🤯 But Stop Making Excuses.</title>
      <dc:creator>Arnaud Leymet</dc:creator>
      <pubDate>Sat, 07 Aug 2021 22:10:40 +0000</pubDate>
      <link>https://dev.to/codename/building-an-app-was-hard-but-stop-making-excuses-1552</link>
      <guid>https://dev.to/codename/building-an-app-was-hard-but-stop-making-excuses-1552</guid>
      <description>&lt;h2&gt;
  
  
  Top 4 reasons not working on your MVP
&lt;/h2&gt;

&lt;p&gt;So this 🤪 crazy app idea has been growing in your head lately. Yet nothing has been done about it, as you don't see clearly how nor when building it.&lt;/p&gt;

&lt;p&gt;Business and Market reasons aside, the most common reasons (/cough excuses) not starting working on your crazy idea Minimum Viable Product (MVP) are in my opinion:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;🧍‍♀️ &lt;strong&gt;Being alone&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ok you don't have a team yet, but suck it on.&lt;br&gt;
If/when reaching for potential cofounders or hires later in the process, you'll be glad to have your MVP. It'll help convey both your idea and investment in the project.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;⌛ &lt;strong&gt;Takes too much time&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sure. Creating something new and different takes time. But what if? is took less than expected?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;😫 &lt;strong&gt;Technology fatigue&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Behind hypes, technology cycles and experts contradictory opinions, there can be some technology fatigue, which will tickle beginners to tech veterans.&lt;br&gt;
Poundering what language, framework and services to use in a project can be daunting and exhausting. But what if the fatigue were no more?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤯 &lt;strong&gt;Cognitive complexity&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's actually sane to think that there is a lot of area to cover for an app to work, and that a lot of knowledge in multiple areas are needed. On top of the actual app development, there is also the question of the database, of the APIs, of the security, authentication, production debugging, etc.&lt;br&gt;
But what if this cognitive complexity were already tackled by others?&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Are you thinking of a 5th reason? Please drop your suggestions in the comments 💬&lt;br&gt;
Also, the 🍰 cake is a lie.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  These reasons are outdated &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;What if all these reasons were no more? (Well... Apart being alone, you're on your own mate)&lt;br&gt;
What if there were a kind of a shortcut?&lt;/p&gt;

&lt;p&gt;As lots of us have been tickering, playing and working with lots of technology bits, some of us have converged all this know-how into ready-to-use stacks, that help bootstrapping your next projects.&lt;/p&gt;

&lt;p&gt;At &lt;a href="https://codename.co" rel="noopener noreferrer"&gt;codename&lt;/a&gt;, we have been developing our take of what a stack should be.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Featuring &lt;strong&gt;&lt;a href="https://stack.lol" rel="noopener noreferrer"&gt;LOLstack&lt;/a&gt;&lt;/strong&gt;, your ready-to-dev &amp;amp; ready-to-deploy software stack.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Building an App Was Hard. 🤯 Now Stop Making Excuses.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>startup</category>
      <category>motivation</category>
      <category>mobile</category>
    </item>
  </channel>
</rss>
