<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[We Are Break Kft.]]></title><description><![CDATA[Break free of the loop.]]></description><link>https://wearebreak.com/</link><image><url>https://wearebreak.com/favicon.png</url><title>We Are Break Kft.</title><link>https://wearebreak.com/</link></image><generator>Ghost 5.82</generator><lastBuildDate>Sun, 05 Apr 2026 16:33:22 GMT</lastBuildDate><atom:link href="https://wearebreak.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[StagePython]]></title><description><![CDATA[Language design and compiler engineering for the leading kids' coding education company.]]></description><link>https://wearebreak.com/stagepython/</link><guid isPermaLink="false">65492c270478ce00015a5ce5</guid><category><![CDATA[Portfolio]]></category><category><![CDATA[TypeScript]]></category><category><![CDATA[Compiler Engineering]]></category><category><![CDATA[Language Design]]></category><dc:creator><![CDATA[Adam Juhos]]></dc:creator><pubDate>Mon, 06 Nov 2023 18:36:59 GMT</pubDate><media:content url="https://wearebreak.com/content/images/2023/11/Screenshot-2023-11-06-193342.png" medium="image"/><content:encoded><![CDATA[<img src="https://wearebreak.com/content/images/2023/11/Screenshot-2023-11-06-193342.png" alt="StagePython"><p>Logiscool needed a new version of Scoolcode, which would support coding in Python. The task was the design of a Python-like language and the implementation of a new compiler version that would support transforming Python code into the existing AST, thus allowing these new projects to use the existing runtime.</p><p>The solution I&apos;ve designed is similar to the .NET framework. Each language has its custom grammar and commands but still compiles to a shared IL, which the runtime can execute. This allows the system to support cross-language imports so a StageScript project can use parts written in StagePython and vice versa. Plus, StagePython projects can import native Python modules.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://wearebreak.com/content/images/2023/11/Screenshot-2023-11-06-193342-1.png" class="kg-image" alt="StagePython" loading="lazy" width="951" height="559" srcset="https://wearebreak.com/content/images/size/w600/2023/11/Screenshot-2023-11-06-193342-1.png 600w, https://wearebreak.com/content/images/2023/11/Screenshot-2023-11-06-193342-1.png 951w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">The random map generator in StagePython uses the native Perlin module running in Scoolcode.</span></figcaption></figure><p>It was a challenging project due to small but essential details, like built-in functions with the same name but different functionality in the two languages and the requirement of much stricter type checks in Python.</p><p>The result is not just an extra language but a much smarter compiler (which detects more typing errors) with almost 100% test coverage, thanks to a new unit testing framework that supports reflection and expected error outcomes.</p><p>The introduction of the new language and compiler was a great success based on the feedback from content creators, trainers, and students.</p><div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Stack</strong></b><br>Language: TypeScript<br><b><strong style="white-space: pre-wrap;">Customer</strong></b><br>Logiscool Kft.</div></div><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://logiscool.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Logiscool Magyarorsz&#xE1;g</div><div class="kg-bookmark-description">Tekintsd meg a Logiscool oldal&#xE1;t, &#xE9;s v&#xE1;laszd ki gyermeked sz&#xE1;m&#xE1;ra a legjobb programoz&#xF3; kurzust, workshopot vagy t&#xE1;bort!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://logiscool.com/favicons/apple-touch-icon.png" alt="StagePython"></div></div><div class="kg-bookmark-thumbnail"><img src="https://assets.logiscool.com/f/57188/400x400/46a5d677a5/logiscool-en.jpg" alt="StagePython"></div></a></figure>]]></content:encoded></item><item><title><![CDATA[Bunabee]]></title><description><![CDATA[Social campaign, product design, and webshop design.]]></description><link>https://wearebreak.com/bunabee/</link><guid isPermaLink="false">653ed9dd0a31b9000182078b</guid><category><![CDATA[Portfolio]]></category><category><![CDATA[CSS]]></category><category><![CDATA[Shopify]]></category><category><![CDATA[Web Design]]></category><category><![CDATA[Product Design]]></category><category><![CDATA[UI/UX Design]]></category><dc:creator><![CDATA[Adam Juhos]]></dc:creator><pubDate>Sun, 29 Oct 2023 22:49:18 GMT</pubDate><media:content url="https://wearebreak.com/content/images/2023/10/Screenshot-2023-10-29-233221-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://wearebreak.com/content/images/2023/10/Screenshot-2023-10-29-233221-1.png" alt="Bunabee"><p>An experiment with online branding, product design, and webshops.</p><h3 id="product-design-and-rendering">Product design and rendering</h3><p>We&apos;ve designed several patterns and figures for pillows using Adobe products and created marketing materials using Blender. </p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://wearebreak.com/content/images/2023/10/nagyiszoba_79325e2a-c9a9-4cd7-947c-5c97256dd26c_1800x1800.png.webp" width="1080" height="1080" loading="lazy" alt="Bunabee" srcset="https://wearebreak.com/content/images/size/w600/2023/10/nagyiszoba_79325e2a-c9a9-4cd7-947c-5c97256dd26c_1800x1800.png.webp 600w, https://wearebreak.com/content/images/size/w1000/2023/10/nagyiszoba_79325e2a-c9a9-4cd7-947c-5c97256dd26c_1800x1800.png.webp 1000w, https://wearebreak.com/content/images/2023/10/nagyiszoba_79325e2a-c9a9-4cd7-947c-5c97256dd26c_1800x1800.png.webp 1080w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://wearebreak.com/content/images/2023/10/agyon_29e03edf-3930-45c4-9795-95d42e6ef669_1800x1800.png.webp" width="1080" height="1080" loading="lazy" alt="Bunabee" srcset="https://wearebreak.com/content/images/size/w600/2023/10/agyon_29e03edf-3930-45c4-9795-95d42e6ef669_1800x1800.png.webp 600w, https://wearebreak.com/content/images/size/w1000/2023/10/agyon_29e03edf-3930-45c4-9795-95d42e6ef669_1800x1800.png.webp 1000w, https://wearebreak.com/content/images/2023/10/agyon_29e03edf-3930-45c4-9795-95d42e6ef669_1800x1800.png.webp 1080w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://wearebreak.com/content/images/2023/10/pad_1800x1800.png.webp" width="1080" height="1080" loading="lazy" alt="Bunabee" srcset="https://wearebreak.com/content/images/size/w600/2023/10/pad_1800x1800.png.webp 600w, https://wearebreak.com/content/images/size/w1000/2023/10/pad_1800x1800.png.webp 1000w, https://wearebreak.com/content/images/2023/10/pad_1800x1800.png.webp 1080w" sizes="(min-width: 720px) 720px"></div></div><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://wearebreak.com/content/images/2023/10/bunny_pillow.jpg" width="800" height="800" loading="lazy" alt="Bunabee" srcset="https://wearebreak.com/content/images/size/w600/2023/10/bunny_pillow.jpg 600w, https://wearebreak.com/content/images/2023/10/bunny_pillow.jpg 800w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://wearebreak.com/content/images/2023/10/bear_pillow.jpg" width="800" height="800" loading="lazy" alt="Bunabee" srcset="https://wearebreak.com/content/images/size/w600/2023/10/bear_pillow.jpg 600w, https://wearebreak.com/content/images/2023/10/bear_pillow.jpg 800w" sizes="(min-width: 720px) 720px"></div></div></div></figure><h3 id="webshop-design-and-setup">Webshop design and setup</h3><p>We&apos;ve designed and set up a complete Shopify webshop with a customized theme.</p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://wearebreak.com/content/images/2023/10/Screenshot-2023-10-29-233221.png" width="1354" height="806" loading="lazy" alt="Bunabee" srcset="https://wearebreak.com/content/images/size/w600/2023/10/Screenshot-2023-10-29-233221.png 600w, https://wearebreak.com/content/images/size/w1000/2023/10/Screenshot-2023-10-29-233221.png 1000w, https://wearebreak.com/content/images/2023/10/Screenshot-2023-10-29-233221.png 1354w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://wearebreak.com/content/images/2023/10/Screenshot-2023-10-29-233357.png" width="1352" height="805" loading="lazy" alt="Bunabee" srcset="https://wearebreak.com/content/images/size/w600/2023/10/Screenshot-2023-10-29-233357.png 600w, https://wearebreak.com/content/images/size/w1000/2023/10/Screenshot-2023-10-29-233357.png 1000w, https://wearebreak.com/content/images/2023/10/Screenshot-2023-10-29-233357.png 1352w" sizes="(min-width: 720px) 720px"></div></div><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://wearebreak.com/content/images/2023/10/Screenshot-2023-10-29-233622.png" width="1350" height="706" loading="lazy" alt="Bunabee" srcset="https://wearebreak.com/content/images/size/w600/2023/10/Screenshot-2023-10-29-233622.png 600w, https://wearebreak.com/content/images/size/w1000/2023/10/Screenshot-2023-10-29-233622.png 1000w, https://wearebreak.com/content/images/2023/10/Screenshot-2023-10-29-233622.png 1350w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://wearebreak.com/content/images/2023/10/Screenshot-2023-10-29-233653.png" width="1320" height="721" loading="lazy" alt="Bunabee" srcset="https://wearebreak.com/content/images/size/w600/2023/10/Screenshot-2023-10-29-233653.png 600w, https://wearebreak.com/content/images/size/w1000/2023/10/Screenshot-2023-10-29-233653.png 1000w, https://wearebreak.com/content/images/2023/10/Screenshot-2023-10-29-233653.png 1320w" sizes="(min-width: 720px) 720px"></div></div></div></figure><h3 id="social-campaign">Social campaign</h3><p>We&apos;ve created Facebook and Instagram pages and managed a social campaign, including posts and paid targeted ads.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://facebook.com/tales-of-bunabee"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Tales of Bunabee</div><div class="kg-bookmark-description">Tales of Bunabee. 133 ember kedveli. Mack&#xF3; &#xE1;s Nyuszi mindennapi, de egyben nem mindennapi t&#xF6;rt&#xE9;nete.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static.xx.fbcdn.net/rsrc.php/yT/r/aGT3gskzWBf.ico" alt="Bunabee"><span class="kg-bookmark-author">Facebook</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://scontent.fbud4-1.fna.fbcdn.net/v/t39.30808-1/310269391_429683205959818_7787546972801274673_n.png?stp=dst-png_p720x720&amp;_nc_cat=104&amp;ccb=1-7&amp;_nc_sid=5f2048&amp;_nc_ohc=wLiVJLpt1W4AX-l-bgo&amp;_nc_ht=scontent.fbud4-1.fna&amp;oh=00_AfCitM9gX2DZqLZ4o4VviJ0XjOFs-Z4FPC9Hic180BPkpw&amp;oe=654380E5" alt="Bunabee"></div></a></figure><div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Stack</strong></b><br>Language: HTML, CSS, JavaScript<br>Environment: Shopify<br>Tools: Photoshop, Illustrator, Adobe XD, Blender</div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Accounting DSL]]></title><description><![CDATA[Experiment with JetBrains MPS and transactional UI for automated accounting.]]></description><link>https://wearebreak.com/accounting-dsl/</link><guid isPermaLink="false">653ecfc30a31b90001820772</guid><category><![CDATA[Portfolio]]></category><category><![CDATA[DSL]]></category><category><![CDATA[Serverless]]></category><category><![CDATA[SvelteKit]]></category><category><![CDATA[Storyblok]]></category><category><![CDATA[TypeScript]]></category><dc:creator><![CDATA[Adam Juhos]]></dc:creator><pubDate>Sun, 29 Oct 2023 21:40:23 GMT</pubDate><media:content url="https://wearebreak.com/content/images/2023/10/AFEBBA3CD34744338B97D68659A4DDE0-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://wearebreak.com/content/images/2023/10/AFEBBA3CD34744338B97D68659A4DDE0-1.png" alt="Accounting DSL"><p>This is one of my most complex experiments, which is indeed two experiments in one: a domain specific language (DSL) for accountants and a transactional UI.</p><h3 id="domain-specific-language">Domain Specific Language</h3><p>For the language I used the brilliant JetBrain MPS, which provides an IDE for creating and using DSLs. I&apos;ve created a subset of a natural language (Hungarian) which enables the user to define accounting rule sets.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://wearebreak.com/content/images/2023/10/AFEBBA3CD34744338B97D68659A4DDE0.png" class="kg-image" alt="Accounting DSL" loading="lazy" width="1067" height="1104" srcset="https://wearebreak.com/content/images/size/w600/2023/10/AFEBBA3CD34744338B97D68659A4DDE0.png 600w, https://wearebreak.com/content/images/size/w1000/2023/10/AFEBBA3CD34744338B97D68659A4DDE0.png 1000w, https://wearebreak.com/content/images/2023/10/AFEBBA3CD34744338B97D68659A4DDE0.png 1067w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">An excerpt from an accounting rule set in the DSL.</span></figcaption></figure><p>Once ready, the rule set can be compiled into a JSON file, which after feeding it into the Accounting Engine, can be used to calculate TAXes for companies, process invoices or similar tasks.</p><h3 id="transactional-uiux">Transactional UI/UX</h3><p>The UI part of the experience is about the customers of the accountant. My aim was to create a user experience for this system which is more of a conversation and less a traditional UI. By the way, I wanted to reproduce the way customers communicate with accountants: email and phone.</p><p>So the system uses magic links for authentication and the UI is basicaly a set of emails. When the system requires input (information/decision) it sends an email, which contains links for the different options in a decision, or a single link to a data input form.</p><p>For a system like this a serverless implementation is very natural. As I&apos;ve already tried Azure Serverless, this time I went with Vercel Functions and to make the project even more interesting used SvelteKit.</p><h3 id="results">Results</h3><p>As making a real product from this would require a team and a lot of time, I&apos;ve decided to only create a small MVP. The system can handle a single way of taxation and calculate the amount of tax to be paid based on real invocing data (from the system of the local authority, NAV) and real account data (using Open Banking APIs). The calculation is executed in an async way, and the user is notified via an email message containing a magic link, which takes her to the generated taxation report. </p><div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Stack</strong></b><br>Language: TypeScript, JetBrains MPS<br>Frameworks: SvelteKit, Bulma<br>Modules: Sendgrid, Storyblok, Nordigen, NAV Online Invoice API<br>Environment: Browser, Vercel Serverless</div></div><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Tales or Dare]]></title><description><![CDATA[Serverless and flow programming applied to parties.]]></description><link>https://wearebreak.com/tales-or-dare/</link><guid isPermaLink="false">653ea7ea0a31b9000182067e</guid><category><![CDATA[Portfolio]]></category><category><![CDATA[Software Architecture]]></category><category><![CDATA[TypeScript]]></category><category><![CDATA[NodeJS]]></category><category><![CDATA[Serverless]]></category><dc:creator><![CDATA[Adam Juhos]]></dc:creator><pubDate>Sun, 29 Oct 2023 18:56:32 GMT</pubDate><media:content url="https://wearebreak.com/content/images/2023/10/image-3-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://wearebreak.com/content/images/2023/10/image-3-1.png" alt="Tales or Dare"><p>Tales or Dare is one of my experiments. The aim was to create a role-playing game for parties where tasks are given and decisions are made using a chatbot with consequences in real life (like having to drink or being motionless for 5 minutes).</p><figure class="kg-card kg-image-card"><img src="https://wearebreak.com/content/images/2023/10/tales_or_dare@2x-1.png" class="kg-image" alt="Tales or Dare" loading="lazy" width="2000" height="537" srcset="https://wearebreak.com/content/images/size/w600/2023/10/tales_or_dare@2x-1.png 600w, https://wearebreak.com/content/images/size/w1000/2023/10/tales_or_dare@2x-1.png 1000w, https://wearebreak.com/content/images/size/w1600/2023/10/tales_or_dare@2x-1.png 1600w, https://wearebreak.com/content/images/size/w2400/2023/10/tales_or_dare@2x-1.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>The system provides a generic platform for building thematic games, like a Harry Potter game with spells and magical creatures, or a show simulation like Big Brother, or almost anything that a creator can imagine.</p><p>Using Messenger allows the players to enjoy the game without installing anything new on their phones.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://wearebreak.com/content/images/2023/10/image-3.png" class="kg-image" alt="Tales or Dare" loading="lazy" width="1107" height="645" srcset="https://wearebreak.com/content/images/size/w600/2023/10/image-3.png 600w, https://wearebreak.com/content/images/size/w1000/2023/10/image-3.png 1000w, https://wearebreak.com/content/images/2023/10/image-3.png 1107w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">The story editor in action.</span></figcaption></figure><p>The editor is built around the concept of flow programming, and the game can be built from multiple parallel flows where specific points require interaction from a single or multiple players.</p><p>The backend is built using serverless technology using a stateful approach where the state is preserved in storage while the server waits for user input. This way, the execution time - and the cost - of the backend is minimized.</p><div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Stack</strong></b><br>Language: TypeScript, JavaScript<br>Environment: Browser, NodeJS, Azure Serverless, Azure Cosmos DB<br>Frameworks: React, Redux<br>Modules: react-flow-chart</div></div><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[LiveOps Framework]]></title><description><![CDATA[Real-time distributed Redux actions with extras.]]></description><link>https://wearebreak.com/liveops-framework/</link><guid isPermaLink="false">653ea6720a31b9000182065d</guid><category><![CDATA[Portfolio]]></category><category><![CDATA[Framework Design]]></category><category><![CDATA[Developer Experience]]></category><category><![CDATA[NodeJS]]></category><category><![CDATA[TypeScript]]></category><category><![CDATA[Redux]]></category><category><![CDATA[SocketIO]]></category><category><![CDATA[Redis]]></category><dc:creator><![CDATA[Adam Juhos]]></dc:creator><pubDate>Sun, 29 Oct 2023 18:40:30 GMT</pubDate><media:content url="https://wearebreak.com/content/images/2023/10/liveops@2x.png" medium="image"/><content:encoded><![CDATA[<img src="https://wearebreak.com/content/images/2023/10/liveops@2x.png" alt="LiveOps Framework"><p>Real-time distributed Redux actions with extras. The LiveOps framework is a closed-source backend module built using NodeJS, SocketIO, and TypeScript, developed for real-time distributed apps.</p><figure class="kg-card kg-image-card"><img src="https://wearebreak.com/content/images/2023/10/liveops@2x-1.png" class="kg-image" alt="LiveOps Framework" loading="lazy" width="2000" height="537" srcset="https://wearebreak.com/content/images/size/w600/2023/10/liveops@2x-1.png 600w, https://wearebreak.com/content/images/size/w1000/2023/10/liveops@2x-1.png 1000w, https://wearebreak.com/content/images/size/w1600/2023/10/liveops@2x-1.png 1600w, https://wearebreak.com/content/images/size/w2400/2023/10/liveops@2x-1.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>The base concept is very similar to Playfab, but it is built with Redux and React in focus. It allows actions to be distributed between clients in real time and supports server-side triggers for features like achievements and notifications.</p><p>It can handle many parallel actions without problems caused by out-of-order processing and long-running tasks without slowing down the whole system.</p><p>This library allows frontend developers to build complex real-time applications quickly as the backend manages all complexities automatically. Here are a few experiences powered by the framework:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://wearebreak.com/content/images/2023/11/image.png" class="kg-image" alt="LiveOps Framework" loading="lazy" width="1181" height="566" srcset="https://wearebreak.com/content/images/size/w600/2023/11/image.png 600w, https://wearebreak.com/content/images/size/w1000/2023/11/image.png 1000w, https://wearebreak.com/content/images/2023/11/image.png 1181w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">A live quiz game for classrooms. (Similar to Kahoot.)</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://wearebreak.com/content/images/2023/11/image-2.png" class="kg-image" alt="LiveOps Framework" loading="lazy" width="1444" height="790" srcset="https://wearebreak.com/content/images/size/w600/2023/11/image-2.png 600w, https://wearebreak.com/content/images/size/w1000/2023/11/image-2.png 1000w, https://wearebreak.com/content/images/2023/11/image-2.png 1444w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">A live chat service for support agents.</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://wearebreak.com/content/images/2023/11/image-3.png" class="kg-image" alt="LiveOps Framework" loading="lazy" width="1144" height="626" srcset="https://wearebreak.com/content/images/size/w600/2023/11/image-3.png 600w, https://wearebreak.com/content/images/size/w1000/2023/11/image-3.png 1000w, https://wearebreak.com/content/images/2023/11/image-3.png 1144w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Live game leaderboards.</span></figcaption></figure><div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Stack</strong></b><br>Language: TypeScript<br>Environment: NodeJS, Redis<br>Frameworks: SocketIO, Redux</div></div>]]></content:encoded></item><item><title><![CDATA[API Core Framework]]></title><description><![CDATA[Model-based dynamic multi-level APIs for any provider, plus multiple consumption channels.]]></description><link>https://wearebreak.com/api-core-framework/</link><guid isPermaLink="false">653e9e7b0a31b90001820612</guid><category><![CDATA[Portfolio]]></category><category><![CDATA[Open-Source]]></category><category><![CDATA[TypeScript]]></category><category><![CDATA[NodeJS]]></category><category><![CDATA[Framework Design]]></category><category><![CDATA[Developer Experience]]></category><dc:creator><![CDATA[Adam Juhos]]></dc:creator><pubDate>Sun, 29 Oct 2023 18:22:21 GMT</pubDate><media:content url="https://wearebreak.com/content/images/2023/10/image-6.png" medium="image"/><content:encoded><![CDATA[<img src="https://wearebreak.com/content/images/2023/10/image-6.png" alt="API Core Framework"><p>API Core started as one of my open-source experiments. I started this project years before Facebook announced GraphQL and validated my project. The aim was a generic query language for APIs instead of predefined API routes.</p><figure class="kg-card kg-image-card"><img src="https://wearebreak.com/content/images/2023/10/api_core@2x-2.png" class="kg-image" alt="API Core Framework" loading="lazy" width="2000" height="537" srcset="https://wearebreak.com/content/images/size/w600/2023/10/api_core@2x-2.png 600w, https://wearebreak.com/content/images/size/w1000/2023/10/api_core@2x-2.png 1000w, https://wearebreak.com/content/images/size/w1600/2023/10/api_core@2x-2.png 1600w, https://wearebreak.com/content/images/size/w2400/2023/10/api_core@2x-2.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>The result is a framework for building high-performance dynamic multi-level APIs implemented as microservices, plus automatically generated documentation and developer dashboard. It is compatible with Express, MongoDB, Redis, and other frequently used parts of the backend JS stack.</p><p>The documentation is generated using a closed source module from the source code of the API services and automatically aggregated into a central developer hub to make the developer experience seamless.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://wearebreak.com/content/images/2023/10/image-1.png" class="kg-image" alt="API Core Framework" loading="lazy" width="1380" height="756" srcset="https://wearebreak.com/content/images/size/w600/2023/10/image-1.png 600w, https://wearebreak.com/content/images/size/w1000/2023/10/image-1.png 1000w, https://wearebreak.com/content/images/2023/10/image-1.png 1380w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">The generated documentation is presented in a beautiful visual form.</span></figcaption></figure><p>The dashboard is also a closed source part of the system, which automatically generates list and editor views for every service using the type and UI model information provided by the API services. While it is generated automatically using custom UI models, it is also highly customizable.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://wearebreak.com/content/images/2023/10/image.png" class="kg-image" alt="API Core Framework" loading="lazy" width="1387" height="857" srcset="https://wearebreak.com/content/images/size/w600/2023/10/image.png 600w, https://wearebreak.com/content/images/size/w1000/2023/10/image.png 1000w, https://wearebreak.com/content/images/2023/10/image.png 1387w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Dynamically generated dashboard with support for multi-level queries.</span></figcaption></figure><div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Stack</strong></b><br>Language: TypeScript<br>Environment: NodeJS</div></div><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/ajuhos/api-core"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - ajuhos/api-core: Model-based dynamic multi-level APIs for any provider, plus multiple consumption channels</div><div class="kg-bookmark-description">Model-based dynamic multi-level APIs for any provider, plus multiple consumption channels - GitHub - ajuhos/api-core: Model-based dynamic multi-level APIs for any provider, plus multiple consumpti&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" alt="API Core Framework"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">ajuhos</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://repository-images.githubusercontent.com/71443163/0d2aff80-e9cd-11e9-813c-a8e171614e48" alt="API Core Framework"></div></a></figure>]]></content:encoded></item><item><title><![CDATA[Scoolcode]]></title><description><![CDATA[An IDE aimed at kids with a visual block-based and a coding editor with real-time sync.]]></description><link>https://wearebreak.com/scoolcode/</link><guid isPermaLink="false">653e96680a31b9000182059b</guid><category><![CDATA[Portfolio]]></category><category><![CDATA[TypeScript]]></category><category><![CDATA[React]]></category><category><![CDATA[Redux]]></category><category><![CDATA[Software Architecture]]></category><category><![CDATA[UI/UX Design]]></category><dc:creator><![CDATA[Adam Juhos]]></dc:creator><pubDate>Sun, 29 Oct 2023 17:45:10 GMT</pubDate><media:content url="https://wearebreak.com/content/images/2023/10/scoolcode-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://wearebreak.com/content/images/2023/10/scoolcode-1.png" alt="Scoolcode"><p>Logiscool required a solution to teach kids coding who had already mastered Scratch but were too young and inexperienced to switch to a real coding language. My task was to find and implement a solution quickly. </p><p>I created a custom IDE (integrated development environment) where kids could seamlessly transfer between visual block-based coding and real text-based coding thanks to the real-time sync between the views. </p><figure class="kg-card kg-image-card"><img src="https://wearebreak.com/content/images/2023/10/scoolcode-2.png" class="kg-image" alt="Scoolcode" loading="lazy" width="1154" height="695" srcset="https://wearebreak.com/content/images/size/w600/2023/10/scoolcode-2.png 600w, https://wearebreak.com/content/images/size/w1000/2023/10/scoolcode-2.png 1000w, https://wearebreak.com/content/images/2023/10/scoolcode-2.png 1154w" sizes="(min-width: 720px) 720px"></figure><p>The custom StageScript language extends JavaScript with custom grammar to hide the language-specific complexities and allow kids to focus on learning the basic building blocks of coding, like if statements, variables, and functions. The runtime is powered by PixiJS and enables kids to build great games using features like 2D physics, camera, parallaxes, and cloud variables.</p><p>Thanks to Scoolcode, today Logiscool is the leader in the field. It is used by about 50,000 kids worldwide every day. The idea was validated by Microsoft and others, who made similar products in recent years, but thanks to the modular compiler and runtime architecture Scoolcode is still years ahead of the competition. </p><div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Stack</strong></b><br>Language: TypeScript<br>Frameworks: React, Redux<br>Modules: Monaco, Scratch Blocks, PixiJS<br><br><b><strong style="white-space: pre-wrap;">Customer</strong></b><br>Logiscool Kft.</div></div><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://logiscool.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Logiscool Magyarorsz&#xE1;g</div><div class="kg-bookmark-description">Tekintsd meg a Logiscool oldal&#xE1;t, &#xE9;s v&#xE1;laszd ki gyermeked sz&#xE1;m&#xE1;ra a legjobb programoz&#xF3; kurzust, workshopot vagy t&#xE1;bort!</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://logiscool.com/favicons/apple-touch-icon.png" alt="Scoolcode"></div></div><div class="kg-bookmark-thumbnail"><img src="https://assets.logiscool.com/f/57188/400x400/46a5d677a5/logiscool-en.jpg" alt="Scoolcode"></div></a></figure><p></p><p></p><h3 id></h3><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Maptiv]]></title><description><![CDATA[Conference maps for print and online distribution with hotel info.]]></description><link>https://wearebreak.com/maptiv/</link><guid isPermaLink="false">653ec31f0a31b900018206d7</guid><category><![CDATA[Portfolio]]></category><category><![CDATA[NodeJS]]></category><category><![CDATA[Software Architecture]]></category><dc:creator><![CDATA[Adam Juhos]]></dc:creator><pubDate>Tue, 28 Oct 2014 23:00:00 GMT</pubDate><media:content url="https://wearebreak.com/content/images/2023/10/mpt2016-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://wearebreak.com/content/images/2023/10/mpt2016-1.png" alt="Maptiv"><p>Maptiv was a custom-developed mapping solution for conferences. It had an easy-to-use editor for building maps, an online dynamic map view, and support for exporting maps for print.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://wearebreak.com/content/images/2023/10/mpt2016.png" class="kg-image" alt="Maptiv" loading="lazy" width="2000" height="1250" srcset="https://wearebreak.com/content/images/size/w600/2023/10/mpt2016.png 600w, https://wearebreak.com/content/images/size/w1000/2023/10/mpt2016.png 1000w, https://wearebreak.com/content/images/size/w1600/2023/10/mpt2016.png 1600w, https://wearebreak.com/content/images/2023/10/mpt2016.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">One map optimized for print.</span></figcaption></figure><div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Stack</strong></b><br>Language: JavaScript<br>Environment: Browser, NodeJS</div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Tensi Websites]]></title><description><![CDATA[Web design for a tourism agency.]]></description><link>https://wearebreak.com/tensi-websites/</link><guid isPermaLink="false">653eb9eb0a31b900018206ac</guid><category><![CDATA[Portfolio]]></category><category><![CDATA[Web Design]]></category><dc:creator><![CDATA[Adam Juhos]]></dc:creator><pubDate>Mon, 31 Dec 2012 23:00:00 GMT</pubDate><media:content url="https://wearebreak.com/content/images/2023/10/Screenshot-2023-10-29-210003.png" medium="image"/><content:encoded><![CDATA[<img src="https://wearebreak.com/content/images/2023/10/Screenshot-2023-10-29-210003.png" alt="Tensi Websites"><p>Tensi Holiday required three new websites for its extensive collection of program packages. We designed and delivered these using cutting-edge technologies and unique UX.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://wearebreak.com/content/images/2023/10/mideurope-map-1024-b.png" class="kg-image" alt="Tensi Websites" loading="lazy" width="1025" height="769" srcset="https://wearebreak.com/content/images/size/w600/2023/10/mideurope-map-1024-b.png 600w, https://wearebreak.com/content/images/size/w1000/2023/10/mideurope-map-1024-b.png 1000w, https://wearebreak.com/content/images/2023/10/mideurope-map-1024-b.png 1025w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">An interactive map of the mid-Europe region.</span></figcaption></figure><p>All sites featured bold designs with innovative navigation and filtering solutions, like map views and graphs. </p><figure class="kg-card kg-image-card"><img src="https://wearebreak.com/content/images/2023/10/Screenshot-2023-10-29-210003-1.png" class="kg-image" alt="Tensi Websites" loading="lazy" width="1090" height="660" srcset="https://wearebreak.com/content/images/size/w600/2023/10/Screenshot-2023-10-29-210003-1.png 600w, https://wearebreak.com/content/images/size/w1000/2023/10/Screenshot-2023-10-29-210003-1.png 1000w, https://wearebreak.com/content/images/2023/10/Screenshot-2023-10-29-210003-1.png 1090w" sizes="(min-width: 720px) 720px"></figure><p>Each site had a different design for mobile devices.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://wearebreak.com/content/images/2023/10/image-4.png" class="kg-image" alt="Tensi Websites" loading="lazy" width="394" height="711"><figcaption><span style="white-space: pre-wrap;">A specialized version for mobile.</span></figcaption></figure><p></p><div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text"><b><strong style="white-space: pre-wrap;">Stack</strong></b><br>Language: JavaScript<br>Frameworks: Knockout, jQuery<br><br><b><strong style="white-space: pre-wrap;">Customer</strong></b><br>Tensi Kft.</div></div><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://tensi.hu"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Tensi Holiday - Min&#x151;s&#xE9;gben utazunk!</div><div class="kg-bookmark-description">Tensi Holiday utaz&#xE1;si iroda. K&#xED;n&#xE1;latunkban az al&#xE1;bbi aj&#xE1;nlatainkat tal&#xE1;lja: Haj&#xF3;utak, akci&#xF3;s aj&#xE1;nlatok, Disneyland P&#xE1;rizs, esk&#xFC;v&#x151;k &#xE9;s n&#xE1;szutak, k&#xF6;rutaz&#xE1;sok.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://tensi.hu/img/favicon.ico" alt="Tensi Websites"><span class="kg-bookmark-author">Tensi Kft</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://tensi.hu/img/logo.png" alt="Tensi Websites"></div></a></figure>]]></content:encoded></item></channel></rss>